using ColorFillGame.Application.Queries;
using ColorFillGame.Domain.Entities;
using MediatR;

namespace ColorFillGame.Application.Queries.Game;

public class GetGameQuery : IQuery<GameDto>
{
    public Guid GameId { get; set; }

    public GetGameQuery(Guid gameId)
    {
        GameId = gameId;
    }
}

public class GameDto
    {
        public Guid Id { get; set; }
        public string Name { get; set; }
        public int GridSize { get; set; }
        public int MaxPlayers { get; set; }
        public int CurrentPlayers { get; set; }
        public GameStatus Status { get; set; }
        public string StatusName { get; set; } // 字符串形式的游戏状态
        public List<PlayerDto> Players { get; set; }
        public Guid? WinnerId { get; set; }
    }

public class PlayerDto
{
    public Guid Id { get; set; }
    public string Name { get; set; }
    public string ColorCode { get; set; }
    public int Score { get; set; }
    public bool Ready { get; set; }
}